#include "GerenciadorEntrada.h"




GerenciadorEntrada::GerenciadorEntrada(void){


	mouse = new Mouse();
	teclado = new Teclado();
}

GerenciadorEntrada::~GerenciadorEntrada(void){
	
}


bool GerenciadorEntrada::OnEvent(const irr::SEvent &event){
		
	if (event.EventType == EET_MOUSE_INPUT_EVENT){
		
		switch(event.MouseInput.Event){
			
			case EMIE_LMOUSE_PRESSED_DOWN:
				mouse->setEstadoBotaoEsquerdo(true);
				break;

			case EMIE_LMOUSE_LEFT_UP:
				mouse->setEstadoBotaoEsquerdo(false);
				break;

			case EMIE_RMOUSE_PRESSED_DOWN:
				mouse->setEstadoBotaoDireito(true);
				break;

			case EMIE_RMOUSE_LEFT_UP:
				mouse->setEstadoBotaoDireito(false);
				break;

			case EMIE_MOUSE_MOVED:
				mouse->setPosicaoXY(event.MouseInput.X, event.MouseInput.Y);
				break;

			default:
				
				break;
		}
	}
	if (event.EventType == irr::EET_KEY_INPUT_EVENT){
	    //Marca da tecla (obtida no evento) como pressionada
		teclado->setTeclaPressionada(event.KeyInput.Key,event.KeyInput.PressedDown);
	}

	return false;
}
bool GerenciadorEntrada::IsKeyDown(EKEY_CODE codigoTecla) const{

	return teclado->temTeclaPressionada(codigoTecla);
 } 

Teclado* GerenciadorEntrada::getTeclado(void){
	return teclado;
}

Mouse* GerenciadorEntrada::getMouse(void){
	return mouse;
}